package com.spc.car.data.domain.htgg.vo;

import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.Date;

@Data
@Accessors(chain = true)
public class ProjectHtggPublishEditVO {

    @NotNull(message = "ID不能为空！")
    private Long id;

    /**
     * 合同编码
     */
    @NotBlank(message = "合同编号不能为空！")
    private String contractCode;

    /**
     * 合同名称
     */
    @NotBlank(message = "和同名成不能为空！")
    @Length(min = 10, message = "合同名称不能小于10个中文字符")
    private String contractName;

    /**
     * 项目编号
     */
    @NotBlank(message = "项目编号不能为空！")
    private String projCode;

    /**
     * 项目名称
     */
    @NotBlank(message = "项目名称不能为空！")
    private String projName;

    /**
     * 合同签订日期
     */
    @NotBlank(message = "合同签订日期不能为空")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String signDate;

    /**
     * 采购人
     */
    @NotBlank(message = "采购人不能为空！")
    @Length(max = 400, message = "最大长度不能超过400个中文字符")
    private String purchaserName;

    /**
     * 供应商
     */
    @NotBlank(message = "供应商不能为空！")
    @Length(max = 400, message = "最大长度不能超过400个中文字符")
    private String supplyName;

    /**
     * 代理机构
     */
    @NotBlank(message = "代理机构不能为空！")
    @Length(max = 200, message = "最大长度不能超过200个中文字符")
    private String agentName;

    /**
     * 公告时间
     */
    @NotNull(message = "公告时间不能为空！")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date publishDate;

    /**
     * 合同总金额（单位： 元）
     */
    @NotNull(message = "合同金额不能为空！")
    @DecimalMin(value = "0", message = "金额必须为数字，最小金额为{value}")
    private BigDecimal contractMoney;

    /**
     * 关联中标成交公告标题
     */
    @NotBlank(message = "中标或成交公告名称不能为空！")
    @Length(max = 200, message = "最大长度不能超过200个中文字符")
    private String placardTitle;

    /**
     * 关联中标成交公告地址
     */
    @NotBlank(message = "中标或成交公告地址不能为空！")
    @Length(max = 500, message = "最大长度不能超过500个中文字符")
    private String placardUrl;

    /**
     * 地域代码编号
     */
    @NotBlank(message = "中标或成交公告不能为空！")
    @Pattern(regexp = "[0-9]{6}", message = "请输入六位的区域编号")
    private String zoneId;

    /**
     * 行业代码
     */
    @NotBlank(message = "行业代码不能为空！")
    private String bidIndustryCode;

    /**
     * 是否为PPP项目（1-是；NULL-否）
     */
    private String ppp;

    /**
     * 是否允许
     是否允许联合体（1-是；NULL-否）
     */
    private String uniteZb;

    /**
     * 牵头单位名称
     */
    private String proBodyName;

    /**
     * 组成单位名称
     */
    private String orgUnit;

    /**
     * 操作人ID
     */
    private Long operatorId;

    /**
     * 操作人
     */
    private String operatorName;
}
